Method for determining availability of a software application using composite hidden markov model

ABSTRACT

The embodiments herein provide a method and system for determining availability of a software application using Composite Hidden Markov Model (CHMM). The software application is divided into plurality of layers which are further divided into sub-components. The configurations and dependencies of the sub-components are identified and also the state of the sub-components is determined. The state of the sub-components is represented in CHMM using state space diagram. The failure rate and recovery time of the sub-components is computed using the state space diagram and the respective transition tables are derived from the CHMM to determine the availability of the layers. The availability of the layers is combined to determine the availability of the software application.

This application claims the benefit of Indian Patent Application Filing No. 1213/CHE/2011, filed Apr. 7, 2011, which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The present disclosure relates to the quality of service and related application in various fields like cloud computing. More particularly, the embodiments of the disclosure relate to a method for determining availability of a software application using Composite Hidden Markov Model (CHMM).

BACKGROUND OF THE DISCLOSURE

The conventional system provides Reliability Block Diagrams (RDB) which is too simplistic with support for only binary states. These states don't adequately model the different states of a software component or system, like a state with reduced functionality. Also, modeling a complex software system with Markov Model results in a complex model with unmanageable number of states which is difficult to use for computations.

The present disclosure describes how to improve on existing Markov Models & Hidden Markov Models through the implementation of encapsulation using the process of decomposition of the software application into sub-units. This approach can be used for modeling the complete software application. The model achieved from this method is a combined result of many Markov Models or Hidden Markov Models at the sub-units level. Hence it is called a Composite Hidden Markov Model (CHMM) at the system level. It also explains how to combine the mathematical models with measured values and how to apply probability theory to solve the uncertainties in estimating availability of complex software systems.

SUMMARY

This section provides a general summary of the disclosure, and is not a comprehensive disclosure of its full scope or all of its features.

Additional features and advantages are realized through the techniques of the present disclosure. Other embodiments and aspects of the disclosure are described in detail herein and are considered a part of the claimed disclosure.

An exemplary embodiment of present disclosure provides a method for determining availability of a software application using CHMM. The method comprises acts of dividing the software application into sub-units, wherein the sub-units comprises of layers having sub-components. The configurations and dependencies of the sub-units are determined. Also, the state of the sub-units are determined and represented in the CHMM using the state space diagram. The failure rate and recovery time of the sub-units are determined using the state space diagram; and the respective transition tables are derived from the CHMM to determine the availability of the sub-units. The availability of the sub-units is combined to determine the availability of the software application.

An embodiment of the present disclosure provides a system for determining availability of a software application comprising a processor to determine the availability of the software application by determining failure rate and recovery time of layers of the software application and a display unit to display the availability of the software application.

The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features and characteristic of the disclosure are set forth in the appended claims. The embodiments of the disclosure itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings. One or more embodiments are now described, by way of example only, with reference to the accompanying drawings.

FIG. 1 is an exemplary flow chart which illustrates stepwise process for determining availability of a software application.

FIGS. 2 a and 2 b illustrates state space diagram for a software application using Markov Model and Hidden Markov Model respectively.

FIG. 3 a is an exemplary block diagram illustrating division of software application into multiple layers.

FIG. 3 b illustrates state space diagram for Business tier sub-component of the application layer.

FIG. 3 c illustrates state space diagram for Application Server cluster in Active-Passive configuration.

FIG. 3 d illustrates state space diagram for Application Server cluster in Active-Active configuration.

The figures depict embodiments of the disclosure for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the disclosure described herein.

DETAILED DESCRIPTION

The foregoing has outlined rather broadly the features and technical advantages of the present disclosure in order that the detailed description of the disclosure that follows may be better understood. Additional features and advantages of the disclosure will be described hereinafter which form the subject of the claims of the disclosure. The novel features which are believed to be characteristic of the disclosure, both as to its organization and method of operation, together with further objects and advantages will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present disclosure.

Embodiments of the present disclosure relate to a method and a system for determining availability of the software application using Composite Hidden Markov Model (CHMM).

FIG. 1 diagrammatically illustrate sthe steps for determining the availability of a software application using CHMM. In one embodiment, the software application is divided into sub-units wherein the sub-units comprise of layers having sub-components. The configurations and dependencies of the sub-components are identified. The state of the sub-components is determined and the state is represented in CHMM using state space diagram. The failure rate and recovery time of the sub-components are determined using the state space diagram and the respective transition tables are derived from the state space diagram to determine the availability of the sub-units. The availability of the sub-units is then combined to determine the availability of the software application which is displayed in the display unit.

Any software application can be divided into two states UP and DOWN. The Markov Model for the software application is as shown in FIG. 2 a wherein Node S0 represents the state in which the software application is fully functional and is depicted as ‘0’ i.e UP and Node S1 represents the state of non-working of the software application and is depicted as ‘1’i.e DOWN. Assuming that the rate of failure of the software application is given by λ_(SA) and Mean time to repair (MTTR) the failure is given by μ_(SA) and since the Mean time between Failure is equal to the inverse of the rate of the failure i.e

${MTBF} = \frac{1}{\lambda_{SA}}$

The availability of any system (A_(sys)) is given by

$A_{sys} = \frac{MTBF}{{MTBF} + {MTTR}}$

The software application can be down due to various reasons like maintenance, minor faults, or the major faults and hence Mean Time to Repair would vary in each case. So for the entire work we are assuming that we have taken into consideration the variability attached to the repair time and calculation of the MTTR is carried out using simple Markov Model or the Hidden Markov Model as shown in FIG. 2 b. as per the need.

In FIG. 2 b the DOWN state of S1 has been broken down into more granular form S1.1,S1.2, S1.3 in which the states S1.1, S1.2, S1.3 are not directly visible to the user (the case of Hidden Markov Model), but output, dependent on the state, is visible. Assuming that the state S1.1 represents the failure due to “minor” fault and can be overcome by simple “restart” of the system which will take time T1.1, the state S1.2 results into non-working of the software application due to “major” fault and require greater fixation time T1.2 and the state S1.3 is an outcome of the forced non-functionality of the software application as the “maintenance” is going on which requires time T1.3 for repair, the Mean Time to Repair is given by,

${{MTTR}\left( \mu_{SA} \right)} = \frac{\sum\limits_{i = 1}^{n}\; T_{1,i}}{n}$

Where n=3 and T_(1.i)>0 and the failure rate of the complete software application is given by

${{FailureRate}\left( \lambda_{SA} \right)} = {\sum\limits_{i = 1}^{3}\; \lambda_{1,i}}$

FIG. 3 a illustrates the division of software application into sub-units having sub-components to determine the availability of the software application. In one embodiment, the software application is divided into sub-units of application layer, platform layer and infrastructure layer wherein the sub-units further comprises of sub-components. The application layer sub-components include web component, business tier component, data component and Business Process Management (BPM) component, the platform layer sub-components include web server, application server, database, middle ware and operating system and the infrastructure layer sub-components include server and network. The Composite Markov Model using state space diagram is created for the sub-components to determine the availability of the sub-units.

Assuming that the Business tier sub-component of the application layer has two implementations such as, implementation 1 and implementation 2. The software application would be in working state if any of these two implementations are working or both are working. The Markov Model for the business tier sub-component is created using the state space diagram as shown in FIG. 3 b.

In FIG. 3 b, Node S0 represents the state in which both the implementations are working. Node S1 represents the state in which implementation 1 is working and implementation 2 is not working. Node S2 represents the state in which implementation 1 is not working but implementation 2 is working. Node S3 represents the state in which both the implementations are not working. The failure rate of the business tier component and its recovery time when there is transition of state from S0 to S1 is determined. Similarly the failure rate and recovery time of each transition in the Markov Model would give the transition table as shown in the below transition table 1.

TABLE 1 MEAN NODE TIME TO TO FAILURE REPAIR NODE RATE (MTTR) S0 TO λ_(l1) μ_(l1) S1 S0 TO λ_(l2) μ_(l2) S2 S1 TO λ_(l2) μ_(l2) S3 S2 TO λ_(l1) μ_(l1) S3 S0 TO λ_(B) μ_(B) S3

The failure rate of the business tier sub-component (λ

B) is calculated from the transition table 1 using the formula:

$\lambda_{B} = \frac{\frac{\lambda_{I\; 2}.\lambda_{I\; 2}}{\lambda_{I\; 2} + \mu_{I\; 1}} + \frac{\lambda_{I\; 2}.\lambda_{I\; 2}}{\lambda_{I\; 2} + \mu_{I\; 2}}}{1 + \frac{\lambda_{I\; 2}}{\mu_{I\; 1} + \lambda_{I\; 2}} + \frac{\lambda_{I\; 2}}{\mu_{I\; 2} + \lambda_{I\; 2}}}$

Where, λ

is the failure rate of the business tier sub-component, λ

is the failure rate of implementation 1, λ

is the failure rate of implementation 2, μ

, is the recovery time of implementation 1, and μ

is the recovery time of implementation 2.

Now the availability of the business tier sub-component (A

) is determined by using the formula:

$\Lambda_{B} = \frac{MTBF}{{MTBF} + {MTTR}}$

Where,

${MTBF} = \frac{1}{\lambda_{3}}$

Similarly, the availability of the remaining sub-components of the Application Layer is found to determine the availability of the application layer.

In an embodiment, the availability of the Application Layer is determined by aggregating the availability of the sub-components of the Application Layer which is given by the equation:

A _(AL) =A _(DC) ·A _(B) ·A _(WC) ·A _(BC)

Where, A_(DC) is the Availability of the Data component, A_(B) is the Availability of the Business tier component, A_(WC) is the Availability of the web component, and A_(BC) is the Availability of the BPM component.

In an embodiment, the availability of the Application Server sub-component of the Platform Layer depends upon the availability of the configurations of the Application Server cluster. The configurations can either be Active-Passive or Active-Active.

The availability of the Application Server cluster with Active-Passive configuration is determined by creating a Markov Model using the state space diagram as shown in FIG. 3 c In Active-Passive configuration initially only one sever would be catering the entire request from client and would be handling the complete load and marked as active state. But in case it meets some failure or goes down then the other server which is in the passive state will get activated and take the charge of full load. So in every condition only one server would be handling the load of the software application unless both the server fails and the Application Server cluster goes down.

In FIG. 3 c Node S0 represents the state in which one server is in active state and the other is in passive state and hence the Application Server cluster is in working state. Node S1 represents the state in which the previously active server goes down and the passive server is about to get activated and hence the Application Server cluster is in non-working state. Node S2 represents the state in which the passive server gets activated and receives the entire request from the client and hence the Application Server cluster is in working state and Node S3 represents the state in which both the active as well as the passive server meets some failure and goes down and hence the Application Server cluster is in non-working state.

The failure rate of the Application Server cluster in Active-Passive configuration and its recovery time when there is transition of state from S0 to S1 is determined. Similarly the failure rate and recovery time of each transition in the Markov Model would give the transition table 2 as shown below.

TABLE 2 Failure Rate/ Mean Time Activation to Repair Node to Node Time (MTTR) S0 to S1 λ₁ μ₁ S1 to S3 λ₂ S1 to S2 μ_(A) S2 to S0 μ₃ S3 to S2 μ₂ S2 to S3 λ₂

The failure rate of the Application Server in Active-Passive configuration (λ_(AS)) is calculated from the transition table 2 using the formula:

$\lambda_{AS} = \frac{\lambda_{1}.\lambda_{2}.\left( {\mu_{o} + \lambda_{2} + \mu_{A}} \right)}{D.{\mu_{2}\left( {\mu_{1} + \lambda_{2} + \mu_{A}} \right)}}$

Where, λ₁ is the rate of failure during the transition of state from S0 to S1, λ₂ is the rate of failure during the transition of state from S1 to S3, μ_(A) is the activation time taken during the transition of state from S1 to S2, μ₁ is the recovery time taken during the transition of state from S0 to S1, μ₃ is the rate of failure during the transition of state from S2 to S0, and

$D = {1 + \frac{2{\lambda_{1}\left( {\mu_{2} + \lambda_{2} + \mu_{A}} \right)}}{\mu_{3}\left( {\mu_{1} + \lambda_{2} + \mu_{A}} \right)}}$

Now the availability of the Application Server cluster in Active-Passive configuration (λ_(AS)) is determined by using the formula:

$A_{AS} = \frac{MTBF}{{MTBF} + {MTTR}}$

Where,

${MTBF} = \frac{1}{\lambda_{AS}}$

The availability of the Application Server cluster with Active-Active configuration is determined by creating a Markov Model using the state space diagram as shown in FIG. 3 d. In Active-Active configuration unlike Active-Passive configuration both the server would be catering the request from client in sharing mode like half-half of the load (50% each). But in case if one of the servers goes down due to some failure then the complete load will be handled by the single server.

In FIG. 3 d Node S0 represents the state in which both the servers are working properly and hence the Application Server cluster is handling Full load (F) and thus in the full working state. Node S1 represents the state in which one of the servers goes down and the other server is handling only its share of load and hence the Application Server cluster is handling only half of the load (H) and thus in half working state. Node S2 represents the state in which only the working server takes over the charge of all load and hence the Application Server cluster is handling the Full load (F) and thus in full working state. Node S3 represents the state in which both the server meet some failure and goes down and hence the Application Server cluster is Down (D) and thus in non-working state. Node S4 represents the state in which the failed server gets repaired but yet to get into active mode to handle its share of load and the other server is handling only half of the total load (H).

The failure rate of the Application Server cluster in Active-Active configuration and its recovery time in the Markov Model would give the transition table 3 as shown below.

TABLE 3 Failure Rate/ Mean Time Node to Activation to Repair Node Time (MTTR) S0 to S1 λ₁ S1 to S2 μ_(A) S3 to S2 μ₁ S4 to S0 μ_(A) S2 to S3 λ₂ μ₂

The failure rate of the Application Server cluster in Active-Active configuration (λ_(AS)) is calculated from the transition table 3 using the formula:

$\lambda_{AS} = {\lambda_{2} \cdot \frac{\frac{\lambda_{1}}{\mu_{1}}}{1 + \frac{2\lambda_{1}}{\mu_{A}} + \frac{\lambda_{1}}{\mu_{1}} + \frac{\lambda_{1}\lambda_{2}}{\mu_{1}\mu_{2}}}}$

Where, λ₁ is the rate of failure during the transition of state from S0 to S1, λ₂ is the rate of failure during the transition of state from S2 to S3, λ_(A) is the activation time taken during the transition of state from S1 to S2, λ₁ is the recovery time taken during the transition of state from S3 to S2, λ₂ is the recovery time taken during the transition of state from S2 to S3.

Now the availability of the Application Server cluster in Active-Active configuration (λ_(A5)) is determined by using the formula:

$A_{AS} = \frac{MTBF}{{MTBF} + {MTTR}}$

Where,

${MTBF} = \frac{1}{\lambda_{AS}}$

Further, the availability of the Platform Layer is determined by aggregating the availability of the sub-components of the Platform Layer which is given by the equation:

A _(PL) =A _(OS) ·A _(AS) ·A _(BC)

Where, A_(OS) is the Availability of the Operating System, A_(AS) is the Availability of the Application Server and A_(RC) is the Availability of the rest of the sub-components of the Platform Layer.

Also, the availability of the Infrastructure Layer is determined by aggregating the availability of the sub-components of the Infrastructure layer which is given by the equation:

A _(IL) =A _(S) ·A _(N)

Where, A_(S) is the Availability of the Server and A_(N) is the Availability of the Network.

Thus, the availability of the software application is determined by aggregating the availability of the layers of the software application using the equation:

A _(WA) =A _(AL) ·A _(PL) ·A _(iL)

Where, A_(AL) is the Availability of the Application Layer, A_(PL) is the Availability of the Platform Layer and A_(iL) is the Availability of the Infrastructure Layer.

Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based here on. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity.

In addition, where features or aspects of the disclosure are described in terms of Markush groups, those skilled in the art will recognize that the disclosure is also thereby described in terms of any individual member or subgroup of members of the Markush group.

While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims. 

1. A method for determining availability of a software application using Composite Hidden Markov Model (CHMM), said method comprising acts of: dividing the software application into sub-units; identifying configurations and internal dependencies of the sub-units; determining state of the sub-units and representing the state in CHMM using state space diagram; computing failure rate and recovery time of the sub-units using the state space diagram; deriving the respective transition tables from the CHMM to determine the availability of the sub-units; and combining the availability of the sub-units to determine the availability of the software application.
 2. The method as claimed in claim 1, wherein the sub-units are selected from at least one of layers, layers having components and layers having sub-components of the components.
 3. The method as claimed in claim 1, wherein the sub-units of the software application are selected from at least one of application layer, platform layer and infrastructure layer; wherein the sub-units further comprises of layers having sub-components.
 4. The method as claimed in claim 3, wherein the sub-components of the application layer are selected from at least one of web component, business tier component, data component and Business Process Management (BPM) component.
 5. The method as claimed in claim 3, wherein the sub-components of the platform layer are selected from at least one of web server, application server, database, middle ware and operating system.
 6. The method as claimed in claim 3, wherein the sub-components of the infrastructure layer are selected from at least one of server and network.
 7. The method as claimed in claim 1, wherein the state space diagram representing various state of the sub-components is in at least one of active-passive configuration or active-active configuration that facilitate to determine the availability of the layers.
 8. A system for determining availability of a software application comprising: a processor to determine the availability of the software application by determining failure rate and recovery time of layers of the software application; and a display unit to display the availability of the software application.
 9. The system as claimed in claim 8, wherein the processor calculates the failure rate and the recovery time of sub-components of the layers using state space diagram, which represents state of the sub-components and predicts the current availability of the software application. 